cssprovider: Add a function for signalling errors
authorBenjamin Otte <otte@redhat.com>
Wed, 6 Apr 2011 13:38:06 +0000 (15:38 +0200)
committerBenjamin Otte <otte@redhat.com>
Wed, 18 May 2011 19:58:43 +0000 (21:58 +0200)
gtk/gtkcssprovider.c

index c91900f249d3c25181c57554a7bc027d53502ff9..d895c0a551adb4a676df6de22c5c4cd51e37549c 100644 (file)
@@ -1503,6 +1503,13 @@ property_value_free (GValue *value)
   g_slice_free (GValue, value);
 }
 
+static void
+gtk_css_provider_invalid_token (GtkCssProvider *provider,
+                                const char     *expected)
+{
+  provider->priv->scanner->user_data = (gpointer) expected;
+}
+
 static void
 scanner_apply_scope (GScanner    *scanner,
                      ParserScope  scope)
@@ -3213,7 +3220,7 @@ parse_rule (GtkCssProvider  *css_provider,
 
           if (scanner->token != G_TOKEN_IDENTIFIER)
             {
-              scanner->user_data = "Color name";
+              gtk_css_provider_invalid_token (css_provider, "Color name");
               return G_TOKEN_IDENTIFIER;
             }
 
@@ -3223,7 +3230,7 @@ parse_rule (GtkCssProvider  *css_provider,
 
           if (scanner->token != G_TOKEN_IDENTIFIER)
             {
-              scanner->user_data = "Color definition";
+              gtk_css_provider_invalid_token (css_provider, "Color definition");
               return G_TOKEN_IDENTIFIER;
             }
 
@@ -3232,7 +3239,7 @@ parse_rule (GtkCssProvider  *css_provider,
 
           if (!color)
             {
-              scanner->user_data = "Color definition";
+              gtk_css_provider_invalid_token (css_provider, "Color definition");
               return G_TOKEN_IDENTIFIER;
             }
 
@@ -3268,7 +3275,7 @@ parse_rule (GtkCssProvider  *css_provider,
 
           if (path == NULL)
             {
-              scanner->user_data = "File URL";
+              gtk_css_provider_invalid_token (css_provider, "File URL");
               return G_TOKEN_IDENTIFIER;
             }
 
@@ -3302,7 +3309,7 @@ parse_rule (GtkCssProvider  *css_provider,
 
           if (!loaded)
             {
-              scanner->user_data = "File URL";
+              gtk_css_provider_invalid_token (css_provider, "File URL");
               return G_TOKEN_IDENTIFIER;
             }
           else
@@ -3317,7 +3324,7 @@ parse_rule (GtkCssProvider  *css_provider,
 
           if (scanner->token != G_TOKEN_IDENTIFIER)
             {
-              scanner->user_data = "Binding name";
+              gtk_css_provider_invalid_token (css_provider, "Binding name");
               return G_TOKEN_IDENTIFIER;
             }
 
@@ -3344,7 +3351,7 @@ parse_rule (GtkCssProvider  *css_provider,
 
               if (scanner->token != G_TOKEN_IDENTIFIER)
                 {
-                  scanner->user_data = "Binding definition";
+                  gtk_css_provider_invalid_token (css_provider, "Binding definition");
                   return G_TOKEN_IDENTIFIER;
                 }
 
@@ -3352,7 +3359,7 @@ parse_rule (GtkCssProvider  *css_provider,
                                                               scanner->value.v_identifier);
               if (ret != G_TOKEN_NONE)
                 {
-                  scanner->user_data = "Binding definition";
+                  gtk_css_provider_invalid_token (css_provider, "Binding definition");
                   return ret;
                 }
 
@@ -3372,7 +3379,7 @@ parse_rule (GtkCssProvider  *css_provider,
         }
       else
         {
-          scanner->user_data = "Directive";
+          gtk_css_provider_invalid_token (css_provider, "Directive");
           return G_TOKEN_IDENTIFIER;
         }
     }
@@ -3382,7 +3389,7 @@ parse_rule (GtkCssProvider  *css_provider,
   if (expected_token != G_TOKEN_NONE)
     {
       selector_path_unref (selector);
-      scanner->user_data = "Selector";
+      gtk_css_provider_invalid_token (css_provider, "Selector");
       return expected_token;
     }
 
@@ -3397,7 +3404,7 @@ parse_rule (GtkCssProvider  *css_provider,
       if (expected_token != G_TOKEN_NONE)
         {
           selector_path_unref (selector);
-          scanner->user_data = "Selector";
+          gtk_css_provider_invalid_token (css_provider, "Selector");
           return expected_token;
         }
 
@@ -3437,7 +3444,7 @@ parse_rule (GtkCssProvider  *css_provider,
       if (scanner->token != G_TOKEN_IDENTIFIER)
         {
           g_free (prop);
-          scanner->user_data = "Property value";
+          gtk_css_provider_invalid_token (css_provider, "Property value");
           return G_TOKEN_IDENTIFIER;
         }
 
@@ -3480,7 +3487,7 @@ parse_rule (GtkCssProvider  *css_provider,
               g_slice_free (GValue, val);
               g_free (prop);
 
-              scanner->user_data = "Property value";
+              gtk_css_provider_invalid_token (css_provider, "Property value");
               return G_TOKEN_IDENTIFIER;
             }
         }